<template>
	<div class="wrapper">

		<!-- header部分 -->
		<header>
			<p>商家列表</p>
		</header>

		<!-- 商家列表部分 -->
		<ul class="business">
			<li v-for="item in businessArr" @click='tobusinessInfo(item.businessId)'>
				<div class="business-img">
					<img :src="item.businessImg">
					<div class="business-img-quantity" v-show="item.quantity>0">{{item.quantity}}</div>
				</div>
				<div class="business-info">
					<h3>{{item.businessName}}</h3>
					<p>&#165;{{item.starPrice}}起送 | &#165;{{item.deliveryPrice}}配送</p>
					<p>{{item.businessExplain}}</p>
				</div>
			</li>
		</ul>

		<!-- 底部菜单部分 -->
		<Footer></Footer>
	</div>
</template>

<script setup>
	import Footer from '../components/Footer.vue';
	import qs from 'qs';
	//导入路由相关的模块
	import {useRouter,useRoute} from 'vue-router';
	import {ref,inject} from 'vue'
	import {getSessionStorage} from '../common.js'
	
	const axios = inject("axios");
	const router = useRouter();
	const route = useRoute();
	const orderTypeId = route.query.orderTypeId;
	//声明一个数组类型的数据，用于接收服务端拉取回来的响应数据
	const businessArr = ref([]);
	//const foodArr = ref([]);
	//如果没取到就是空的，如果获取的user非空说明已经登录
	const user = getSessionStorage('user');
	
	const init =()=> {
		axios.post('BusinessController/listBusinessByOrderTypeId',qs.stringify({
			orderTypeId: orderTypeId
		})).then((response) => {
			businessArr.value = response.data;
			console.log(response.data);
			//如果用户已经登陆，那么需要去购物车查询选购了哪些食品
			if(user!=null){
				listCart();
			}
		}).catch((error) => {
			console.log(error);
		});
	};
	
	//初始化商家列表信息
	init();
	
	const tobusinessInfo =(businessId)=> {
		router.push({
			path:"/businessInfo",
			query:{
				businessId:businessId
			}
		});
	}
	
	//查询购物车信息
	const listCart =()=> {
		axios.post('CartController/listCart',qs.stringify({
			//businessId:businessId,
			userId: user.userId,
		})).then((response) => {
			console.log(response.data);
			//购物车的数据
			let cartArr = response.data;
			//foodArr.value食品列表的数据
			//1.先遍历所有的食品列表
			//2.循环遍历购物车
			//3.如果食品列表的id和购物车里的食品id相同或者相等，那么就把购物车的数量赋给食品列表
			for(let businessItem of businessArr.value ){
				businessItem.quantity=0;
				for(let cartItem of cartArr){
					if(cartItem.businessId == businessItem.businessId){
						businessItem.quantity+=cartItem.quantity;
					}
				}
			}
			console.log(businessArr.value);
		}).catch((error) => {
			console.log(error);
		});
	}
	
</script>

<style scoped>
	/****************** 总容器 ******************/
	.wrapper {
		width: 100%;
		height: 100%;
	}

	/****************** header部分 ******************/
	.wrapper header {
		width: 100%;
		height: 12vw;
		background-color: #0097FF;
		color: #fff;
		font-size: 4.8vw;

		position: fixed;
		left: 0;
		top: 0;
		z-index: 1000;

		display: flex;
		justify-content: center;
		align-items: center;
	}

	/****************** 商家列表部分 ******************/
	.wrapper .business {
		width: 100%;
		margin-top: 12vw;
		margin-bottom: 14vw;
	}

	.wrapper .business li {
		width: 100%;
		box-sizing: border-box;
		padding: 2.5vw;
		border-bottom: solid 1px #DDD;
		user-select: none;
		cursor: pointer;

		display: flex;
		align-items: center;
	}

	.wrapper .business li .business-img {
		/*这里设置为相当定位，成为business-img-quantity元素的父元素*/
		position: relative;
	}

	.wrapper .business li .business-img img {
		width: 20vw;
		height: 20vw;
	}

	.wrapper .business li .business-img .business-img-quantity {
		width: 5vw;
		height: 5vw;
		background-color: red;
		color: #fff;
		font-size: 3.6vw;
		border-radius: 2.5vw;

		display: flex;
		justify-content: center;
		align-items: center;

		/*设置成绝对定位，不占文档流空间*/
		position: absolute;
		right: -1.5vw;
		top: -1.5vw;
	}

	.wrapper .business li .business-info {
		margin-left: 3vw;
	}

	.wrapper .business li .business-info h3 {
		font-size: 3.8vw;
		color: #555;
	}

	.wrapper .business li .business-info p {
		font-size: 3vw;
		color: #888;
		margin-top: 2vw;
	}

	/****************** 底部菜单部分 ******************/
	.wrapper .footer {
		width: 100%;
		height: 14vw;
		border-top: solid 1px #DDD;
		background-color: #fff;

		position: fixed;
		left: 0;
		bottom: 0;

		display: flex;
		justify-content: space-around;
		align-items: center;
	}

	.wrapper .footer li {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;

		color: #999;
		user-select: none;
		cursor: pointer;
	}

	.wrapper .footer li p {
		font-size: 2.8vw;
	}

	.wrapper .footer li i {
		font-size: 5vw;
	}
</style>
